﻿<%@ Control Language="C#" AutoEventWireup="true" CodeFile="SelectInvolvedProcess.ascx.cs" Inherits="UserControls_SelectInvolvedProcess" %>

<%= GetValueHtml() %>
<asp:Panel ID="SimpleSelectorPanel" runat="server">
    
    <div id="PlaintiffContainer" runat="server" style="float:left; width:400px;margin-right: 10px;">
        <asp:HyperLink ID="SelectPlaintiffHyperLink" runat="server"
            NavigateUrl="#"
            Text="Seleccione los Demandantes">
        </asp:HyperLink>
        <asp:Repeater ID="PlaintiffRepeater" runat="server">
            <HeaderTemplate>
                <table width="400" cellpadding="0" cellspacing="0" border="0" class="dataTable">
                    <col width="320" />
                    <col width="80" />
                    <thead>
                        <tr class="header">
                            <th>Nombre</th>
                            <th>&nbsp;</th>
                        </tr>
                    </thead>
                    <tbody>
            </HeaderTemplate>
            <ItemTemplate>
                <tr class="item0">
                    <td>
                        <asp:Literal ID="NombreLiteral" runat="server"
                            Text="<%# Bind('Nombre') %>">
                        </asp:Literal>
                    </td>
                    <td>
                        <asp:HyperLink ID="DeleteHyperlink" runat="server"
                            Text="Quitar"
                            CssClass="<%# GetClassName() %>"
                            NavigateUrl="<%# Bind('PersonaNaturalId') %>">
                        </asp:HyperLink>
                    </td>
                </tr>
            </ItemTemplate>
            <AlternatingItemTemplate>
                <tr class="item1">
                    <td>
                        <asp:Literal ID="NombreLiteral" runat="server"
                            Text="<%# Bind('Nombre') %>">
                        </asp:Literal>
                    </td>
                    <td>
                        <asp:HyperLink ID="DeleteHyperlink" runat="server"
                            Text="Quitar"
                            CssClass="<%# GetClassName() %>"
                            NavigateUrl="<%# Bind('RepresentanteId') %>">
                        </asp:HyperLink>
                    </td>
                </tr>
            </AlternatingItemTemplate>
            <FooterTemplate>
                        <asp:Literal ID="EmptyTemplateLiteral" runat="server" Visible='<%# IsRepeaterVisible("0") %>'
                            Text='<tr class="item0 emptyDataSet"><td colspan="2" align="center">No hay demandantes seleccionados</td></tr>'>
                        </asp:Literal>
                        
                    </tbody>
                </table>
            </FooterTemplate>
        </asp:Repeater>
    </div>
    <div id="DefendantContainer" runat="server">
        <asp:HyperLink ID="DefendantHyperLink" runat="server"
            NavigateUrl="#"
            Text="Seleccione los Demandados">
        </asp:HyperLink>
        <asp:Repeater ID="DefendantRepeater" runat="server">
            <HeaderTemplate>
                <table width="400" cellpadding="0" cellspacing="0" border="0" class="dataTable">
                    <col width="320" />
                    <col width="80" />
                    <thead>
                        <tr class="header">
                            <th>Nombre</th>
                            <th>&nbsp;</th>
                        </tr>
                    </thead>
                    <tbody>
            </HeaderTemplate>
            <ItemTemplate>
                <tr class="item0">
                    <td>
                        <asp:Literal ID="NombreLiteral" runat="server"
                            Text="<%# Bind('Nombre') %>">
                        </asp:Literal>
                    </td>
                    <td>
                        <asp:HyperLink ID="DeleteHyperlink" runat="server"
                            Text="Quitar"
                            CssClass="<%# GetClassName() %>"
                            NavigateUrl="<%# Bind('PersonaNaturalId') %>">
                        </asp:HyperLink>
                    </td>
                </tr>
            </ItemTemplate>
            <AlternatingItemTemplate>
                <tr class="item1">
                    <td>
                        <asp:Literal ID="NombreLiteral" runat="server"
                            Text="<%# Bind('Nombre') %>">
                        </asp:Literal>
                    </td>
                    <td>
                        <asp:HyperLink ID="DeleteHyperlink" runat="server"
                            Text="Quitar"
                            CssClass="<%# GetClassName() %>"
                            NavigateUrl="<%# Bind('RepresentanteId') %>">
                        </asp:HyperLink>
                    </td>
                </tr>
            </AlternatingItemTemplate>
            <FooterTemplate>
                        <asp:Literal ID="EmptyTemplateLiteral" runat="server" Visible='<%# IsRepeaterVisible("1") %>'
                            Text='<tr class="item0 emptyDataSet"><td colspan="2" align="center">No hay demandados seleccionados</td></tr>'>
                        </asp:Literal>
                        
                    </tbody>
                </table>
            </FooterTemplate>
        </asp:Repeater>
    </div>
</asp:Panel>

<!--Dialog-->
<asp:Panel ID="DialogSearchPanel" runat="server"
    ToolTip="Busqueda de Personas">
    <div>
        <div style="text-align:center">
            <asp:TextBox ID="SearchTextBox" runat="server"
                CssClass="searchField">
            </asp:TextBox>
            <asp:LinkButton ID="SearchLinkButton" runat="server"
                Text="Buscar"
                CssClass="button">
            </asp:LinkButton>
        </div>
        <div style="margin: 0 auto;margin-top: 10px;width:580px;">
            <table width="580" cellpadding="0" cellspacing="0" border="0" class="dataTable">
                <col width="500" />
                <col width="100" />
                <thead>
                    <tr class="header">
                        <th>Nombre</th>
                        <th>&nbsp;</th>
                    </tr>
                </thead>
                <tbody id="results" runat="server">
                    <tr class="item0">
                        <td colspan="2" align="center">No hay resultados para su busqueda</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </div>
</asp:Panel>

<!--HiddenFields-->
<asp:HiddenField ID="SelectionTypeHiddenField" runat="server" Value="Demandante" />
<asp:HiddenField ID="ProcesoIdHiddenField" runat="server" Value="0" />

<asp:HiddenField ID="DeletedInvolvedHiddenField" runat="server" Value="{}" />
<asp:HiddenField ID="InsertedPlaintiffHiddenField" runat="server" Value="{}" />
<asp:HiddenField ID="InsertedDefendantHiddenField" runat="server" Value="{}" />

<script type="text/javascript">

    //Variables
    var demandadosInsertados = new Array();
    var demandantesInsertados = new Array();
    var involucradosEliminados = new Array();

    $(document).ready(function () {
        if ($("#<%= PlaintiffContainer.ClientID %> > table > tbody > tr").length > 0 &&
            $("#<%= DefendantContainer.ClientID %> > table > tbody > tr").length > 0)
            $("#<%= ClientID %>").val("1");
        else
            $("#<%= ClientID %>").val("");

        $("#<%= DialogSearchPanel.ClientID %>").dialog({
            resizable: false,
            width: 650,
            height: 350,
            modal: true,
            autoOpen: false,
            beforeClose: function (event, ui) { resetSearcher(); },
            buttons: {
                'Cerrar': function () {
                    $(this).dialog('close');
                }
            }
        });

        $("#<%= SelectPlaintiffHyperLink.ClientID %>").click(function () {
            $("#<%= SelectionTypeHiddenField.ClientID %>").val("Demandantes");
            $("#<%= DialogSearchPanel.ClientID %>").dialog("open");
            return false;
        });

        $("#<%= DefendantHyperLink.ClientID %>").click(function () {
            $("#<%= SelectionTypeHiddenField.ClientID %>").val("Demandados");
            $("#<%= DialogSearchPanel.ClientID %>").dialog("open");
            return false;
        });

        $("#<%= SearchTextBox.ClientID %>").keypress(function (event) {
            if (event.keyCode == 13) {
                doSearch();
            }
        });
        $("#<%= SearchLinkButton.ClientID %>").click(function () {
            doSearch();
            return false;
        });

        $(".<%= GetClassName() %>").live("click", function () {
            var id = $(this).attr("href").replace('../UserControls/', '');
            id = id.replace('../', '');
            id = id.replace('../', '');
            id = id.replace('../', '');
            id = id.replace('../', '');
            $(this).parent().parent().remove();
            setEmptySelectedPeople();
            updateClassRows();
            if (id > 0)
                involucradosEliminados[involucradosEliminados.length] = parseInt(id);
            removeFromOtherLists(id);
            $("#<%= InsertedDefendantHiddenField.ClientID %>").val(getIdList(demandadosInsertados));
            $("#<%= InsertedPlaintiffHiddenField.ClientID %>").val(getIdList(demandantesInsertados));
            $("#<%= DeletedInvolvedHiddenField.ClientID %>").val(getIdList(involucradosEliminados));
            return false;
        });
    });

    function resetSearcher() {
        setEmptyData();
        $('#<%= SearchTextBox.ClientID %>').val("");
    }

    function getIdList(list) {
        var ids = "";
        for (var i = 0; i < list.length; i++) {
            ids += list[i] + ',';
        }
        if (ids.length > 0)
            ids = ids.substring(0, ids.length - 1);
        return ids;
    }

    function updateClassRows() {
        $("#<%= PlaintiffContainer.ClientID %> > table > tbody > tr").removeClass("item0");
        $("#<%= PlaintiffContainer.ClientID %> > table > tbody > tr").removeClass("item1");
        $("#<%= DefendantContainer.ClientID %> > table > tbody > tr").removeClass("item0");
        $("#<%= DefendantContainer.ClientID %> > table > tbody > tr").removeClass("item1");
        var rows = $("#<%= PlaintiffContainer.ClientID %> > table > tbody > tr");
        for (var i = 0; i < rows.length; i++) {
            $(rows[i]).addClass('item' + (i % 2));
        }
        rows = $("#<%= DefendantContainer.ClientID %> > table > tbody > tr");
        for (var i = 0; i < rows.length; i++) {
            $(rows[i]).addClass('item' + (i % 2));
        }
    }

    function buildResult(result) {
        if (result.length == 0) {
            setEmptyData();
            return;
        }
        var html = '';
        for (var i = 0; i < result.length; i++) {
            var persona = result[i];
            html += '<tr class="item' + (i % 2) + '">' +
                '<td>' + persona.Nombre + '</td>' +
                '<td><a onclick="return select(' + persona.PersonaId + ',\'' + persona.Nombre + '\');" href="#">Seleccionar</a></td>' +
                '</tr>';
        }
        $("#<%= results.ClientID %>").html(html);
    }

    function buildRow(id, nombre, i) {
        return '<tr class="item' + i + '"><td>' + nombre + '</td>' +
                    '<td><a href="' + id + '" class="<%= GetClassName() %>">Quitar</a></td></tr>';
    }

    function doSearch() {
        var text = superTrim($("#<%= SearchTextBox.ClientID %>").val());
        var list = getValoresParaObviar();
        if (text == "") {
            return false;
        }
        $.ajax({
            type: "GET",
            contentType: "application/json; charset=utf-8",
            url: '<%= SearchRequestHandler %>?q=' + text + '&ids=' + list,
            dataType: "json",
            success: function (data) {
                buildResult(data);
            }
        });
    }

    function select(id, nombre) {
        var tbl = "";
        if ($("#<%= SelectionTypeHiddenField.ClientID %>").val() == "Demandados") {
            demandadosInsertados[demandadosInsertados.length] = parseInt(id);
            tbl = "#<%= DefendantContainer.ClientID %> > table > tbody";
        } else {
            demandantesInsertados[demandantesInsertados.length] = parseInt(id);
            tbl = "#<%= PlaintiffContainer.ClientID %> > table > tbody";
        }
        var count = $(tbl + " > tr.emptyDataSet").length;
        if (count == 1) {
            count = 0;
            $(tbl).html("");
        } else
            count = $(tbl + " > tr").length;
        var row = buildRow(id, nombre, count % 2);
        $(tbl).append(row);

        doSearch();
        $("#<%= InsertedDefendantHiddenField.ClientID %>").val(getIdList(demandadosInsertados));
        $("#<%= InsertedPlaintiffHiddenField.ClientID %>").val(getIdList(demandantesInsertados));
        $("#<%= DeletedInvolvedHiddenField.ClientID %>").val(getIdList(involucradosEliminados));

        return false;
    }

    function setEmptyData() {
        $("#<%= results.ClientID %>").html('<tr class="item0">' +
                '<td colspan="2" align="center">No hay resultados para su busqueda</td>' +
            '</tr>');
    }

    function setEmptySelectedPeople() {
        var noHayDemandantes = $("#<%= PlaintiffContainer.ClientID %> > table > tbody > tr").length == 0;
        if (noHayDemandantes) {
            $("#<%= PlaintiffContainer.ClientID %> > table > tbody").html('<tr class="item0 emptyDataSet">' +
                    '<td colspan="2" align="center">No hay demandantes seleccionados</td>' +
                '</tr>');
            $("#<%= ClientID %>").val("");
        }

        var noHayDemandados = $("#<%= DefendantContainer.ClientID %> > table > tbody > tr").length == 0;
        if (noHayDemandados) {
            $("#<%= DefendantContainer.ClientID %> > table > tbody").html('<tr class="item0 emptyDataSet">' +
                    '<td colspan="2" align="center">No hay demandados seleccionados</td>' +
                '</tr>');
            $("#<%= ClientID %>").val("");
        }

        if(!noHayDemandados || !noHayDemandantes)
            $("#<%= ClientID %>").val("1");
        else
            $("#<%= ClientID %>").val("");
    }

    function getValoresParaObviar() {
        var trs = $("a.<%= GetClassName() %>");
        var list = "";
        for (var i = 0; i < trs.length; i++) {
            list += $(trs[i]).attr('href').replace('../UserControls/', '') + ',';
        }
        if (list.length > 0)
            list = list.substring(0, list.length - 1);
        return list;
    }

    function removeFromOtherLists(id) {
        var aux = new Array();
        for (var i = 0; i < demandadosInsertados.length; i++) {
            if (demandadosInsertados[i] == id)
                continue;
            aux[aux.length] = demandadosInsertados[i];
        }
        demandadosInsertados = aux;
        aux = new Array();
        for (var i = 0; i < demandantesInsertados.length; i++) {
            if (demandantesInsertados[i] == id)
                continue;
            aux[aux.length] = demandantesInsertados[i];
        }
        demandantesInsertados = aux;
    }
    
</script>